package com.example.controller;

import com.example.pojo.Result;
import com.example.pojo.queryResult;
import com.example.pojo.suspectProductListPojo;
import com.example.service.suspectProductListService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

import static cn.hutool.core.bean.BeanUtil.isEmpty;

@RestController
public class suspectProductGuoController {
    @Autowired
    private suspectProductListService suspectProductListService;

    //插入一条数据：连接前端页面发送的地址，SuspectProductList 这个是前端页面名对应，SuspectProductGuo 后端数据库名对应
    @PostMapping("/insertOneSuspectProductListSuspectProductGuo")
    public Result insertOneSuspectProductListSuspectProductGuo(@RequestBody suspectProductListPojo pojo) {
        //在可疑品数据表中插入一条新的数据或修改的数据，数据类型是suspectProductListPojo 数据是pojo
        suspectProductListService.insertOne(pojo);
        return Result.success("插入成功");
    }

    //查询所有数据数据：连接前端页面发送的地址，SuspectProductList 这个是前端页面名对应，SuspectProductGuo 后端数据库名对应
    @PostMapping("/queryAllSuspectProductListSuspectProductGuo")
    public Result queryAllSuspectProductListSuspectProductGuo() {
        //数据显示的功能，在插入完成后，页面中显示所有的满足条件的数据
        List<suspectProductListPojo> pojoList = suspectProductListService.queryAll();
        return Result.success(pojoList);
    }

    //多条件筛选可疑品清单
    @PostMapping("/querySuspectProductListPaginationSuspectProductGuo")
    public Result querySuspectProductListPaginationToExamineProblem(@RequestBody Map<String,Object> map){
        queryResult queryResult=suspectProductListService.filterSuspectProduct(map);
        return Result.success(queryResult);
    }

    //修改一条数据：连接前端页面发送的地址，SuspectProductList 这个是前端页面名对应，SuspectProductGuo 后端数据库名对应
    @PostMapping("/editOneSuspectProductListSuspectProductGuo")
    public Result editOneSuspectProductListSuspectProductGuo(@RequestBody suspectProductListPojo pojo) {
        //在可疑品数据表中编辑一条数据
        suspectProductListService.editOne(pojo);
        return Result.success(pojo);
    }

    //查询一条数据,根据筛选的字段名和字段值进行筛选数据并返回（利用map功能）
    @PostMapping("/queryOneFieldSuspectProductListSuspectProductGuo")
    public Result queryOneFieldSuspectProductListSuspectProductGuo(@RequestBody Map<String, Object> map) {
        List<suspectProductListPojo> pojo = suspectProductListService.queryOneField(map);
        return Result.success(pojo);
    }

    //查询一条数据,根据筛选的日期值进行筛选数据并返回（利用map功能）
    @PostMapping("/queryExceptionByTimeScopeSuspectProductListSuspectProductGuo")
    public Result queryExceptionByTimeScopeSuspectProductListSuspectProductGuo(@RequestBody Map<String, Object> map) {
        List<suspectProductListPojo> pojo = suspectProductListService.queryByTimeScope(map);
        return Result.success(pojo);
    }

    //修改一条数据,用于可疑品处置的字段，根据传递的ID、字段名称和字段值，进行自动匹配数据库中的内容（利用map功能）
    @PostMapping("/editOneFiledByIdSuspectProductGuoSuspectProductList")
    public Result editOneFiledByIdSuspectProductGuoSuspectProductList(@RequestBody Map<String, Object> map) {
        suspectProductListService.editOneFiledById(map);
        return Result.success("修改成功");
    }
    @PostMapping("/editTwoFiledsByIdSuspectProductGuoSuspectProductList")
    public Result editTwoFiledsByIdSuspectProductGuoSuspectProductList(@RequestBody Map<String, Object> map) {
        suspectProductListService.editTwoFiledsById(map);
        return Result.success("修改成功");
    }





}
